feat(skills): add cli skill test command#3999
feat(skills): add cli skill test command#3999JingHou1215 wants to merge 1 commit intoagentscope-ai:mainfrom
Conversation
|
Hi @JingHou1215, thank you for your first Pull Request! 🎉 🙌 Join Developer CommunityThanks so much for your contribution! We'd love to invite you to join the official QwenPaw developer group! You can find the Discord and DingTalk group links under the "Developer Community" section on our docs page: We truly appreciate your enthusiasm—and look forward to your future contributions! 😊 We'll review your PR soon. |
|
Hi! @JingHou1215 Thanks for the PR. I have reviewed the PR and have the below suggestions:
|
cbfa8ca to
d4bef86
Compare
|
Thanks for the review, @Leirunlin! Updated. Workspace skill test now uses the directory name as the scan/output identity, while frontmatter is only used for validation. I also removed the added unit test file per your feedback. |
|
@JingHou1215 Hi! This looks better now. A small point: The manual parsers only detects closing fence with line.strip() in {"---", "..."}. How about re-use the implementation of current project? It could be cleaner. |
d4bef86 to
010e778
Compare
|
Thanks for the detailed and patient feedback! @Leirunlin Updated as suggested. |

Description
Adds an initial CLI entrypoint for validating individual QwenPaw skills before assigning them to agents.
This PR introduces
qwenpaw skills test <skill>, supporting validation by workspace skill name or local skill directory path. The command checks thatSKILL.mdexists, validates required frontmatter fields (nameanddescription), and runs the existing skill security scanner with blocking enabled.Related Issue: Relates to #3883
Security Considerations: Uses the existing skill security scanner, so skills with blocking security findings fail validation.
Type of Change
Component(s) Affected
Checklist
pre-commit run --all-fileslocally and it passespytestor as relevant) and they passFor Channel Changes (DingTalk, Feishu, QQ, Console, etc.)
./scripts/check-channels.sh(or./scripts/check-channels.sh --changed) and it passestests/contract/channels/test_<channel>_contract.py(REQUIRED)create_instance()with proper channel initializationtests/contract/channels/__init__.py)tests/unit/channels/test_<channel>.pyfor complex internal logicTesting
.\.venv\Scripts\pre-commit.exe run --files src\qwenpaw\cli\skills_cmd.py→ passedLocal Verification Evidence
pre-commit run --all-files→ passedpytest→ passed